/**
 * <copyright>
 * </copyright>
 *

 */
package scerbak.usecases.util;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

import scerbak.usecases.Action;
import scerbak.usecases.ActionStep;
import scerbak.usecases.Actor;
import scerbak.usecases.AllStepsSelector;
import scerbak.usecases.AnyAction;
import scerbak.usecases.Condition;
import scerbak.usecases.Extension;
import scerbak.usecases.ExtensionStep;
import scerbak.usecases.Goto;
import scerbak.usecases.Interaction;
import scerbak.usecases.Interest;
import scerbak.usecases.Issue;
import scerbak.usecases.Model;
import scerbak.usecases.ScenarioEnd;
import scerbak.usecases.Scope;
import scerbak.usecases.SingleStepSelector;
import scerbak.usecases.State;
import scerbak.usecases.StepListSelector;
import scerbak.usecases.StepRangeSelector;
import scerbak.usecases.StepSelector;
import scerbak.usecases.SubGoal;
import scerbak.usecases.Trigger;
import scerbak.usecases.UseCase;
import scerbak.usecases.UsecasesPackage;
import scerbak.usecases.Variant;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see scerbak.usecases.UsecasesPackage
 * @generated
 */
public class UsecasesAdapterFactory extends AdapterFactoryImpl
{
  /**
   * The cached model package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected static UsecasesPackage modelPackage;

  /**
   * Creates an instance of the adapter factory.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public UsecasesAdapterFactory()
  {
    if (modelPackage == null)
    {
      modelPackage = UsecasesPackage.eINSTANCE;
    }
  }

  /**
   * Returns whether this factory is applicable for the type of the object.
   * <!-- begin-user-doc -->
   * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
   * <!-- end-user-doc -->
   * @return whether this factory is applicable for the type of the object.
   * @generated
   */
  @Override
  public boolean isFactoryForType(Object object)
  {
    if (object == modelPackage)
    {
      return true;
    }
    if (object instanceof EObject)
    {
      return ((EObject)object).eClass().getEPackage() == modelPackage;
    }
    return false;
  }

  /**
   * The switch that delegates to the <code>createXXX</code> methods.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected UsecasesSwitch<Adapter> modelSwitch =
    new UsecasesSwitch<Adapter>()
    {
      @Override
      public Adapter caseModel(Model object)
      {
        return createModelAdapter();
      }
      @Override
      public Adapter casePackage(scerbak.usecases.Package object)
      {
        return createPackageAdapter();
      }
      @Override
      public Adapter caseUseCase(UseCase object)
      {
        return createUseCaseAdapter();
      }
      @Override
      public Adapter caseScope(Scope object)
      {
        return createScopeAdapter();
      }
      @Override
      public Adapter caseActor(Actor object)
      {
        return createActorAdapter();
      }
      @Override
      public Adapter caseInterest(Interest object)
      {
        return createInterestAdapter();
      }
      @Override
      public Adapter caseState(State object)
      {
        return createStateAdapter();
      }
      @Override
      public Adapter caseCondition(Condition object)
      {
        return createConditionAdapter();
      }
      @Override
      public Adapter caseTrigger(Trigger object)
      {
        return createTriggerAdapter();
      }
      @Override
      public Adapter caseActionStep(ActionStep object)
      {
        return createActionStepAdapter();
      }
      @Override
      public Adapter caseAction(Action object)
      {
        return createActionAdapter();
      }
      @Override
      public Adapter caseAnyAction(AnyAction object)
      {
        return createAnyActionAdapter();
      }
      @Override
      public Adapter caseSubGoal(SubGoal object)
      {
        return createSubGoalAdapter();
      }
      @Override
      public Adapter caseInteraction(Interaction object)
      {
        return createInteractionAdapter();
      }
      @Override
      public Adapter caseSingleStepSelector(SingleStepSelector object)
      {
        return createSingleStepSelectorAdapter();
      }
      @Override
      public Adapter caseStepRangeSelector(StepRangeSelector object)
      {
        return createStepRangeSelectorAdapter();
      }
      @Override
      public Adapter caseStepSelector(StepSelector object)
      {
        return createStepSelectorAdapter();
      }
      @Override
      public Adapter caseStepListSelector(StepListSelector object)
      {
        return createStepListSelectorAdapter();
      }
      @Override
      public Adapter caseAllStepsSelector(AllStepsSelector object)
      {
        return createAllStepsSelectorAdapter();
      }
      @Override
      public Adapter caseScenarioEnd(ScenarioEnd object)
      {
        return createScenarioEndAdapter();
      }
      @Override
      public Adapter caseGoto(Goto object)
      {
        return createGotoAdapter();
      }
      @Override
      public Adapter caseExtensionStep(ExtensionStep object)
      {
        return createExtensionStepAdapter();
      }
      @Override
      public Adapter caseExtension(Extension object)
      {
        return createExtensionAdapter();
      }
      @Override
      public Adapter caseVariant(Variant object)
      {
        return createVariantAdapter();
      }
      @Override
      public Adapter caseIssue(Issue object)
      {
        return createIssueAdapter();
      }
      @Override
      public Adapter caseCommon_Model(scerbak.common.Model object)
      {
        return createCommon_ModelAdapter();
      }
      @Override
      public Adapter defaultCase(EObject object)
      {
        return createEObjectAdapter();
      }
    };

  /**
   * Creates an adapter for the <code>target</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param target the object to adapt.
   * @return the adapter for the <code>target</code>.
   * @generated
   */
  @Override
  public Adapter createAdapter(Notifier target)
  {
    return modelSwitch.doSwitch((EObject)target);
  }


  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Model <em>Model</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Model
   * @generated
   */
  public Adapter createModelAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Package <em>Package</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Package
   * @generated
   */
  public Adapter createPackageAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.UseCase <em>Use Case</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.UseCase
   * @generated
   */
  public Adapter createUseCaseAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Scope <em>Scope</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Scope
   * @generated
   */
  public Adapter createScopeAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Actor <em>Actor</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Actor
   * @generated
   */
  public Adapter createActorAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Interest <em>Interest</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Interest
   * @generated
   */
  public Adapter createInterestAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.State <em>State</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.State
   * @generated
   */
  public Adapter createStateAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Condition <em>Condition</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Condition
   * @generated
   */
  public Adapter createConditionAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Trigger <em>Trigger</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Trigger
   * @generated
   */
  public Adapter createTriggerAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.ActionStep <em>Action Step</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.ActionStep
   * @generated
   */
  public Adapter createActionStepAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Action <em>Action</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Action
   * @generated
   */
  public Adapter createActionAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.AnyAction <em>Any Action</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.AnyAction
   * @generated
   */
  public Adapter createAnyActionAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.SubGoal <em>Sub Goal</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.SubGoal
   * @generated
   */
  public Adapter createSubGoalAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Interaction <em>Interaction</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Interaction
   * @generated
   */
  public Adapter createInteractionAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.SingleStepSelector <em>Single Step Selector</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.SingleStepSelector
   * @generated
   */
  public Adapter createSingleStepSelectorAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.StepRangeSelector <em>Step Range Selector</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.StepRangeSelector
   * @generated
   */
  public Adapter createStepRangeSelectorAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.StepSelector <em>Step Selector</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.StepSelector
   * @generated
   */
  public Adapter createStepSelectorAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.StepListSelector <em>Step List Selector</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.StepListSelector
   * @generated
   */
  public Adapter createStepListSelectorAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.AllStepsSelector <em>All Steps Selector</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.AllStepsSelector
   * @generated
   */
  public Adapter createAllStepsSelectorAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.ScenarioEnd <em>Scenario End</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.ScenarioEnd
   * @generated
   */
  public Adapter createScenarioEndAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Goto <em>Goto</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Goto
   * @generated
   */
  public Adapter createGotoAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.ExtensionStep <em>Extension Step</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.ExtensionStep
   * @generated
   */
  public Adapter createExtensionStepAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Extension <em>Extension</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Extension
   * @generated
   */
  public Adapter createExtensionAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Variant <em>Variant</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Variant
   * @generated
   */
  public Adapter createVariantAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.usecases.Issue <em>Issue</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.usecases.Issue
   * @generated
   */
  public Adapter createIssueAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for an object of class '{@link scerbak.common.Model <em>Model</em>}'.
   * <!-- begin-user-doc -->
   * This default implementation returns null so that we can easily ignore cases;
   * it's useful to ignore a case when inheritance will catch all the cases anyway.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @see scerbak.common.Model
   * @generated
   */
  public Adapter createCommon_ModelAdapter()
  {
    return null;
  }

  /**
   * Creates a new adapter for the default case.
   * <!-- begin-user-doc -->
   * This default implementation returns null.
   * <!-- end-user-doc -->
   * @return the new adapter.
   * @generated
   */
  public Adapter createEObjectAdapter()
  {
    return null;
  }

} //UsecasesAdapterFactory
